home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 October / PCWorld_2004-10_cd.bin / software / temacd / sandra / san2004.SP2b-9133-Win32-SSO.exe / {app} / examples / SQL Server Schema.sql < prev    next >
Text File  |  2004-03-25  |  4KB  |  155 lines

  1.  
  2. --
  3. -- SQL Server 7.0/2000 Schema for Sandra Report
  4. --
  5. -- Database is assumed to have been created already.
  6. -- No size settings included, please add as required.
  7. --
  8. -- Copyright 1995-2004, C. A. Silasi, SiSoftware.
  9. -- All Rights Reserved.
  10. --
  11.  
  12. --USE Sandra;
  13.  
  14. --
  15. -- Kill all tables
  16. --
  17.  
  18. IF exists(select * from sysobjects where id = object_id('TItem') and OBJECTPROPERTY(id, 'IsTable') = 1)
  19. DROP TABLE TItem;
  20.  
  21. IF exists(select * from sysobjects where id = object_id('TItemGroup') and OBJECTPROPERTY(id, 'IsTable') = 1)
  22. DROP TABLE TItemGroup;
  23.  
  24. IF exists(select * from sysobjects where id = object_id('TDevice') and OBJECTPROPERTY(id, 'IsTable') = 1)
  25. DROP TABLE TDevice;
  26.  
  27. IF exists(select * from sysobjects where id = object_id('TClass') and OBJECTPROPERTY(id, 'IsTable') = 1)
  28. DROP TABLE TClass;
  29.  
  30. IF exists(select * from sysobjects where id = object_id('TModule') and OBJECTPROPERTY(id, 'IsTable') = 1)
  31. DROP TABLE TModule;
  32.  
  33. IF exists(select * from sysobjects where id = object_id('TReport') and OBJECTPROPERTY(id, 'IsTable') = 1)
  34. DROP TABLE TReport;
  35.  
  36. IF exists(select * from sysobjects where id = object_id('TIDCount') and OBJECTPROPERTY(id, 'IsTable') = 1)
  37. DROP TABLE TIDCount;
  38.  
  39. --
  40. -- Create new tables
  41. --
  42.  
  43. CREATE TABLE TReport (
  44.     ID            INT IDENTITY (1,1),
  45.     ProgramName        VARCHAR(255),
  46.     ProgramVersion        VARCHAR(255),
  47.     RegisteredUser        VARCHAR(255),
  48.     RegisteredCompany    VARCHAR(255),
  49.     LicenceStatus        VARCHAR(255),
  50.     LicenceExtra        VARCHAR(255),
  51.     UserID            VARCHAR(255),
  52.     HostName        VARCHAR(255),
  53.     SystemID        VARCHAR(255),
  54.     WebUserID        VARCHAR(255),
  55.     RunID            VARCHAR(255),
  56.     RunDate            DATETIME,
  57.     Completed        BIT NOT NULL,
  58.  
  59.     CONSTRAINT        cnstRIID PRIMARY KEY(ID)
  60. );
  61.  
  62. CREATE TABLE TModule (
  63.     ID            INT IDENTITY (1,1),
  64.     ReportID        INT NOT NULL,
  65.     Name            VARCHAR(255) NOT NULL,
  66.     TypeID            INT NOT NULL,
  67.     HasClass        BIT NOT NULL,
  68.     HasDevice        BIT NOT NULL,
  69.     HelpID            INT NOT NULL,
  70.  
  71.     CONSTRAINT        cnstMIID PRIMARY KEY(ID),
  72.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES TReport(ID)
  73. );
  74.  
  75. CREATE TABLE TClass (
  76.     ID            INT IDENTITY (1,1),
  77.     ModuleID        INT NOT NULL,
  78.     Name            VARCHAR(255) NOT NULL,
  79.     TypeID            INT NOT NULL,
  80.     HelpID            INT NOT NULL,
  81.  
  82.     CONSTRAINT        cnstCIID PRIMARY KEY(ID),
  83.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  84. );
  85.  
  86. CREATE TABLE TDevice (
  87.     ID            INT IDENTITY (1,1),
  88.     ModuleID        INT NOT NULL,
  89.     ClassID            INT,
  90.     Name            VARCHAR(255) NOT NULL,
  91.     TypeID            INT NOT NULL,
  92.     HelpID            INT NOT NULL,
  93.  
  94.     CONSTRAINT        cnstDIID PRIMARY KEY(ID),
  95.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  96. );
  97.  
  98. CREATE TABLE TItemGroup (
  99.     ID            INT IDENTITY (1,1),
  100.     ModuleID        INT NOT NULL,
  101.     ClassID            INT,
  102.     DeviceID        INT,
  103.     Name            VARCHAR(255) NOT NULL,
  104.     TypeID            INT NOT NULL,
  105.     HelpID            INT NOT NULL,
  106.  
  107.     CONSTRAINT        cnstGIID PRIMARY KEY(ID),
  108.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  109. );
  110.  
  111. CREATE TABLE TItem (
  112.     ID            INT IDENTITY (1,1),
  113.     ModuleID        INT NOT NULL,
  114.     GroupID            INT,
  115.     Name            VARCHAR(255) NOT NULL,
  116.     DataValue        VARCHAR(255),
  117.     IconID            INT NOT NULL,
  118.     TypeID            INT NOT NULL,
  119.     HelpID            INT NOT NULL,
  120.  
  121.     CONSTRAINT        cnstIIID PRIMARY KEY(ID),
  122.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  123. );
  124.  
  125. CREATE TABLE TIDCount (
  126.     TableName        VARCHAR(10) PRIMARY KEY,
  127.     CurrentID        INT NOT NULL
  128. );
  129.  
  130. --
  131. -- Set-up keys/indexes
  132. --
  133.  
  134. CREATE INDEX ndxUserID ON TReport (UserID);
  135.  
  136. CREATE INDEX ndxSystemID ON TReport (SystemID);
  137.  
  138. CREATE INDEX ndxWebUserID ON TReport (WebUserID);
  139.  
  140. CREATE INDEX ndxModuleName ON TModule (Name);
  141.  
  142. CREATE INDEX ndxItemName ON TItem (Name);
  143.  
  144. --
  145. -- Inserts
  146. --
  147.  
  148. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  149. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  150. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  151. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  152. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  153. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  154.  
  155.